question

Adil M avatar image
0 Likes"
Adil M asked Adil M commented

Picking from both sides of conveyor

Hi, I have a model where operators are picking from a conveyor belt. However they only pick from one side of the belt. What changes can I make to this model so that associatesPick from other side of conveyor.fsm pick from both sides?

FlexSim 24.0.2
conveyorsoperatorspicking
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

·
Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Adil M commented

The code that determines the pickup location currently always sends the operators to the right edge of the conveyor.

You can alter it to choose the edge based on the current position of the operator. Another potential issue is which position on the A* grid is determined to be closest to the target coordinates. Setting the pickup location to be half a conveyor width away from the edge seems to work.

pick-from-other-side-of-conveyor_1.fsm


· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Adil M avatar image Adil M commented ·

Thanks Felix, I moved around a few pallet locations and started running into an error not sure what's causing the error. Also, is there a way for me to block certain zones on the simulation where operators can't walk? For instance in the model you shared the operators were going around the top of the conveyor. I only want them to go around at the bottom of the conveyor, if at all. Also is it possible for the operator to prioritize packages with labels on their side of the conveyor over the one for the other side? pick-from-other-side-of-conveyor-1.fsm

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Adil M commented ·
There is a box with type "0" being generated, because the percentages in the "InboundPackages" table do not add up to 100%.

Use barriers, dividers or preferred/mandatory paths to limit where the operators walk on the A* grid.

To prioritize picking items that go to a queue on the current side of the operator, you'd need to:
- Determine the current side of the operator. This could be a binary value, based on whether the y-coordinate of the operator is larger, smaller than the position of the conveyor (as long as you don't rotate the system's orientation.

- Have an array label that contains two arrays that each contain the label values that go to the respective side of the conveyor. (So something like [[9, 12, 8, 11, 7, 10], [1, 4, 3, 6, 5, 2]] for the current model)

- Add an expression field to the list that checks if the item's label is part of the array that belongs to the current side of the operator. For example, let's assume a label "side" denotes the side of the operator as either 1 (above) or 2 (below) and the array label described above is called "LabelsBySide". Then the expression would be

puller.LabelsBySide[puller.side].as(Array).indexOf(value.Type) > 0

If the type label goes to the current side, this returns 1, otherwise 0.

- Then order the items in the pull query by this expression first (ORDER BY isOnSide DESC, distance ASC)

Alternatively, you could add this check to the code of the "distance field", adding extra distance if the operator would have to switch sides to unload the item.
1 Like 1 ·
Adil M avatar image Adil M Felix Möhlmann commented ·
Thanks I'll try to apply this
0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.